What is described are methods and apparatus for sharing network bandwidth. In particular, methods and apparatus for sharing network bandwidth in packet switched networks between different classes of devices having equal access rights to the network are presented.
Traditional networks, such as the Public Switched Telephone Network (PSTN), are based on circuit switching technology, in which a dedicated line is allocated for transmission between two devices. Circuit switching is ideal when data must be transmitted quickly and must arrive in the same order in which it's sent. Traditionally, circuit switching technology has been used to transfer real-time data, such as live audio and video. But having dedicated connections between devices can lead to inefficiencies in the allocation and use of the overall available network bandwidth.
Packet switching can be more efficient and robust for data that can withstand some delay in transmission. Packet switched networks use protocols in which messages are divided into packets before they are sent. Each packet is then transmitted individually and can even follow different routes to its destination. Once all the packets forming a message arrive at the destination, they are recompiled into the original message. Most modern Wide Area Network (WAN) protocols, including TCP/IP, X.25, Frame Relay, and Asynchronous Transfer Mode (ATM) are based on packet switching technologies. Traditionally, packet switching has been used to transfer e-mail messages and Internet web pages, but modern protocols have evolved to the point where acceptable transfer of live audio and video information are being achieved.
Many of the networking schemes either being used or proposed for the home networking environment also utilize packet switching technology. Two of the leading schemes today are wireless (RF) and powerline carrier (PLC). The home networking environment raises unique challenges in the areas of efficient bandwidth allocation and utilization. One factor behind these challenges is that typical home networking schemes require that control and status information be transferred between devices on the network, while at the same time supporting the transfer of audio and video data between the networked devices. These different traffic types often require conflicting amounts of bandwidth. For example, certain types of traffic, such as command or response cycles, occur infrequently, but require that a certain maximum total transmission loop time be met. Other types of traffic, such as audio or video streaming, may be able to accommodate relatively long transmission gaps at irregular intervals, but must have a guaranteed average bandwidth available to them. Techniques for dynamically managing and allocating bandwidth to account for these conflicting requirements can become quite complex and time consuming.
Another factor behind the challenges of bandwidth allocation in the home networking environment is that the physical medium for the network is typically shared between a number of separate entities that may not coordinate efficiently (or equitably) in sharing the total available bandwidth. The bandwidth sharing problem is exaggerated when several devices on the network seek access to the shared medium simultaneously. This situation can lead to a momentary peak of network activity, that in turn may cause the parameters for, e.g., either sending command/response cycles or sending streaming data to be violated.
Accordingly, what is needed are techniques for “flattening” the network traffic peaks and reducing the probability that any one particular network device will not be able to perform its data transactions according to its required traffic parameters. Moreover, it would be desirable to develop techniques that will ensure the available bandwidth of the network is shared on an equitable basis, to allow both time-limited and bulk data transactions to be accomplished according to their needs.
Packet switched networks are typically designed to support the transfer of packets having a given maximum packet length, and to require a particular interpacket time gap to be placed between transmitted packets. The goal in choosing these parameters is to achieve a maximum data throughput given the physical parameters of the network medium, as well as the logical parameters of the media access control (MAC) function that manages access to the network. Typically, all network devices share these same parameters, and network access is typically granted on a non-discriminatory basis. For example, if a particular network device has one hundred Kbytes of data to transmit over the network, it may transmit this data at the maximum rate supported by the network, even if doing causes data transmission problems for other devices on the network.
Accordingly, there also exists a need for techniques that will enforce that the data transmissions of any particular network device be spread out over a longer period of time, thus reducing the level of contention with other devices needing to access the network.
U.S. Pat. No. 6,108,306 to Kalkunte et al. (“Kalkunte”) describes an arrangement in which a network switch dynamically allocates bandwidth to a number of switch ports based upon the activity of network nodes connected to the ports. The switch assigns a bandwidth value to each active port based on the switch capacity and the total number of active ports. Each switch port forwards its assigned bandwidth to a corresponding network node that then calculates an interpacket gap interval based on the size of the packet being transmitted and the assigned bandwidth value. The switch port also calculates the size of the interpacket gap to determine if transmission of another data packet begins at the expiration of the calculated gap interval. If a new data packet is not received by the time the gap interval expires, the port is determined to be inactive and the switch redistributes the inactive port's bandwidth to the remaining active ports.
A drawback of Kalkunte's arrangement is that a network switch is required to control the described bandwidth allocation. Since each of the network nodes in Kalkunte's arrangement compete for network access on a more or less equal basis (Kalkunte describes that different priorities can be assigned to the different switch ports), without the network switch, each node could attempt to utilize the full network bandwidth one hundred percent of the time. This would result in a total network overload condition. Even including the functionality of the network switch, Kalkunte's arrangement does not address the problem of ensuring that both low bandwidth time-limited data transfers and high bandwidth bulk data transfers are accommodated without violating their respective network parameters, as is required in the home networking environment.